package cn.tedu.suppermemory.mapper;

import cn.tedu.suppermemory.pojo.entity.Student;
import cn.tedu.suppermemory.pojo.entity.Teacher;
import cn.tedu.suppermemory.pojo.vo.StudentListItemVO;
import cn.tedu.suppermemory.pojo.vo.StudentStandardVO;
import cn.tedu.suppermemory.pojo.vo.TeacherListItemVO;
import cn.tedu.suppermemory.pojo.vo.TeacherStandardVO;
import org.springframework.stereotype.Repository;

import java.util.List;
@Repository
public interface StudentMapper {
    /**
     * 插入学生数据
     *
     * @param student   学生数据
     * @return          受影响的行数
     */
    int insert(Student student);

    /**
     * 根据id删除学生数据
     *
     * @param id    学生id
     * @return      受影响的行数
     */
    int deleteById(Long id);

    /**
     * 根据若干个id批量删除学生数据
     *
     * @param ids   若干个学生id的数组
     * @return      受影响的行数
     */
    int deleteByIds(Long[] ids);

    /**
     * 根据id修改学生数据
     *
     * @param student   封装了学生id和新数据的对象
     * @return          受影响的行数
     */
    int update(Student student);

    /**
     * 统计学生数据的数量
     *
     * @return 学生数据的数量
     */
    int count();

    /**
     * 统计学生数据的数量
     *
     * @return 学生数据的数量
     */
    int countByName(String name);

    /**
     * 根据id查询学生数据详情
     *
     * @param id    学生id
     * @return      匹配的学生数据详情，如果没有匹配的数据，则返回null
     */
    StudentStandardVO getStandardById(Long id);

    /**
     * 查询学生数据列表
     *
     * @return 学生数据列表
     */
    List<StudentListItemVO> list();
}
